

// token  其实就是一个令牌

//   用户会注册账号  (携带用户名和密码)
//   用户登陆 (携带用户名和密码)
//   查看商品不需要用户信息
//   加入购物车，删除购物车，   (携带用户名)
//      此时很容易被人伪造数据(进入购物车)

//   用户的账号信息存在一定的安全隐患

//   解决方案：
//   用户会注册账号  (携带用户名和密码)
//   用户登陆 (携带用户名和密码)
//   用户登陆成功之后，后端会根据用户的信息  --- 个性化定制加密的数据，生成一个加密的字符串token,发给前端(前端存储起来)
//   后面如果需要加入购物车，删除购物车，或者修改密码 都需要携带token , 后端进行解密校验 ， 验证通过才有后续的操作

// token 是有有效期的
// token失效以后，需要重新登陆，登陆之后又会生成token


// token 就是一段加密的字符串，是一个令牌




// 借用第三方插件  jsonwebtoken
// 安装插件 npm i jsonwebtoken

const jwt = require('jsonwebtoken');

// 接收前端的参数
const info = {
    user: 'yy',
    pass: '123'
}

// 进行加密  sign(加密的数据 , 加密的规则 , 配置项)
const token = jwt.sign(info, 'suibianxie', { expiresIn: 3 })   // 秒数

console.log(token);    // 一段很长的字符串

// 解密   verify(token , 加密规则 , () => {})
setTimeout(() => {
    jwt.verify(token, 'suibianxie', (err, data) => {
        if (err) {
            return console.log(err)
        }
        console.log(data);
    })
}, 1000)


